//
//  CZStatusViewModel.swift
//  weibo27
//
//  Created by mac on 16/4/19.
//  Copyright © 2016年 it.cast. All rights reserved.
//

import UIKit

// MARK: 微博的模型视图
class CZStatusViewModel:CustomStringConvertible{
    
    var userStatus:CZUserStatus

    /// 注册可充用的cellId
    var cellId:String{
        return userStatus.retweeted_status != nil ? statusRetweetedID : statusNormalID
    }
    
    
    
    /// 行高的缓存
//    var rowHeight:CGFloat?
    lazy var rowHeight: CGFloat = {
        
        /// 定义一个cell，根据是否为转发微博的cell，进行创建 
        var cell:CZStatusCell
        
        if self.userStatus.retweeted_status != nil {
            
            cell = CZStatusRetweeted(style: .Default, reuseIdentifier: statusRetweetedID)
        }else{
            cell = CZStatusNormalCell(style: .Default, reuseIdentifier: statusNormalID)
        }
        return cell.rowHeight(self)
        }()
    
    // 缩略图数组
    
    var retweenText:String?{
        
        guard let s = userStatus.retweeted_status else{
            return nil
        }
        
        return "@" + "\(s.user?.screen_name ?? "")" + ":" + (s.text ?? "")
    }
    
    /*
    转发微博与原创微博只可能一个有图，也可以都没有，因为转发的微博，自己不能再上面加照片
    */
    var thumbnail_pic: [NSURL]?
    
    init(userStatus: CZUserStatus){
        
        self.userStatus = userStatus
        
        //充分利用数组，只可能有一个有图
        if let pics = userStatus.retweeted_status?.pic_urls ?? userStatus.pic_urls{
       
            //走到这里说明有图片，就可以对可选的图片数组进行初始化
            thumbnail_pic = [NSURL]()
            
            //遍历数组 如果数组为空就不能进行遍历
            for dict in pics{
                
                //用户存储的照片是一个数组，每一张照片又分别是以一个的对象（字典）通过键取值
                let url = NSURL(string: dict["thumbnail_pic"]!)
                //不能像数组中添加空对象。
                thumbnail_pic?.append(url!)
            }
        }
    }
    /// 用户的头像
    var userProfileUrl: NSURL{
        
        return NSURL(string: userStatus.user?.profile_image_url ?? "")!
    }
    /// 用户的默认头像
    var userDefaultImage: UIImage{
        
        return UIImage(named: "avatar_default_big")!
    }
    /// VIP图标 是可选的
    var userMemberImage:UIImage?{
        
        if userStatus.user?.mbrank > 0 && userStatus.user?.mbrank < 7{
            
            return UIImage(named: "common_icon_membership_level\(userStatus.user?.mbrank)")
        }
        return nil
    }
    
    var userVipImage:UIImage?{
        /// 认证类型，-1：没有认证，0，认证用户，2,3,5: 企业认证，220: 达人
        switch(userStatus.user?.verified_type ?? -1){
        case 0: return UIImage(named: "avatar_vip")
        case 2,3,4: return UIImage(named: "avatar_grassroot")
        case 220: return UIImage(named: "avatar_enterprise_vip")
        default :return nil
        }
    }
    
    var description: String{
        
        return userStatus.description + "配图数组\(thumbnail_pic ?? [] as NSArray) "
    }
}



